home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 4
/
FM Towns Free Software Collection 4 - Disc 1.iso
/
t_os
/
binex
/
binex.c
next >
Wrap
Text File
|
1991-10-18
|
2KB
|
68 lines
pragma Ipath("a:/inc/");
#include <stdio.h>
#define BEGIN {
#define END }
#define IF if(
#define THEN ){
#define ELSE }else{
#define ELSEIF }else{if(
#define ENDIF }
#define WHILE while(
#define DO ){
#define FOR for(
#define TO ;
#define BY ;
#define LOOP for(;;){
#define ENDWHILE }
#define REPEAT do{
#define UNTIL(s) }while(s);
#define SWITCH(s) switch(s){
#define CASE(s) case(s):
#define DEFAULT default:
#define BREAK break;
#define ENDSWITCH }
#define RETURN(s) return(s);
#define FUNCTION int
#define MODULE void
#define OR ||
#define AND &&
#define NOT !
#define EQU ==
#define NEQ !=
#define MODULE void
#define ON 0xFF
#define OFF 0x00
#define TAB 0x09
#define LF 0x0A
#define CR 0x0D
#define BLANK 0x20
#define COMMA 0x2C
#define ZERO 0x00
MODULE main(argc,argv)
int argc;
char *argv[];
BEGIN
unsigned char buffer[16],Check;
FILE *fp[2];
int i,Byte_Count,Byte_Size;
Byte_Count = 0;
fp[0] = fopen(argv[1],"r");
WHILE (Byte_Size = fread(buffer,1,16,fp[0])) NEQ ZERO DO
i = Check = 0;
printf("S1%02X%04X",Byte_Size + 5,Byte_Count);
WHILE i < Byte_Size DO
Check = Check + buffer[i];
printf("%02X",buffer[i++]);
ENDWHILE
Check = Check + Byte_Count / 0x100 & 0xFF;
Check = Check + Byte_Count & 0xFF;
Check = Check + Byte_Size + 5;
Byte_Count = Byte_Count + 0x10;
printf("%02X\n",0xFF - Check);
ENDWHILE
fclose(fp[0]);
END